Automatic Verification of Golog Programs via Predicate Abstraction

نویسندگان

  • Peiming Mo
  • Naiqi Li
  • Yongmei Liu
چکیده

Golog is a logic programming language for high-level agent control. In a recent paper, we proposed a sound but incomplete method for automatic verification of partial correctness of Golog programs where we give a number of heuristic methods to strengthen given formulas in order to discover loop invariants. However, our method does not work on arithmetic domains. On the other hand, the method of predicate abstraction is widely used in the software engineering community for model checking and partial correctness verification of programs. Intuitively, the predicate abstraction task is to find a formula consisting of a given set of predicates to approximate a given first-order formula. In this paper, we propose a method for automatic verification of partial correctness of Golog programs which use predicate abstraction as a uniform method to strengthen given formulas. We implement a system based on the proposed method, conduct experiments on arithmetical domains and examples from the paper by Li and Liu. Also, we apply our method to the verification of winning strategies for combinatorial games.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

One-Class to Multi-Class Model Update Using the Class-Incremental Optimum-Path Forest Classifier

ion-Based Verification of Infinite-State Reactive Modules 725 Francesco Belardinelli and Alessio Lomuscio Translation-Based Revision and Merging for Minimal Horn Reasoning 734 Gerhard Brewka, Jean-Guy Mailly and Stefan Woltran Parallel Filter-Based Feature Selection Based on Balanced Incomplete Block Designs 743 Antonio Salmerón, Anders L. Madsen, Frank Jensen, Helge Langseth, Thomas D. Nielsen...

متن کامل

Indexed Predicate Discovery for Unbounded System Verification

Predicate abstraction has been proved effective for verifying several infinite-state systems. In predicate abstraction, an abstract system is automatically constructed given a set of predicates. Predicate abstraction coupled with automatic predicate discovery provides for a completely automatic verification scheme. For systems with unbounded integer state variables (e.g. software), counterexamp...

متن کامل

Automating Regression Verification of Pointer Programs by Predicate Abstraction

Regression verification is an approach complementing regression testing with formal verification. The goal is to formally prove that two versions of a program behave either equally or differently in a precisely specified way. In this paper, we present a novel automatic approach for regression verification that reduces the equivalence of two related imperative pointer programs to constrained Hor...

متن کامل

Automatic Verification with Abstraction and Theorem Proving

ion engine. In the cases when it applies, the method can exclude infinitely many paths at once. Moreover, the method also applies when programs are under-approximated or over-approximated, and can be used to deliver final correct results thanks to the flexibility of the predicate abstraction approach. These techniques have been implemented in the tool Eldarica, which is publicly available and h...

متن کامل

Automatic Fence Insertion in Integer Programs via Predicate Abstraction

We propose an automatic fence insertion and verification framework for concurrent programs running under relaxed memory. Unlike previous approaches to this problem, which allow only variables of finite domain, we target programs with (unbounded) integer variables. The problem is difficult because it has two different sources of infiniteness: unbounded store buffers and unbounded integer variabl...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016